Serviço constante

A entrega contínua (CD) é a prática de usar a automação para liberar o software em iterações curtas

O que é entrega contínua?

A entrega contínua é uma abordagem na qual as equipes lançam produtos de qualidade com frequência e previsão do repositório do código fonte para produção de maneira automatizada.

Algumas empresas lançam produtos elas mesmas, passando-os de uma equipe para a outra. Veja o diagrama abaixo. Em geral, os desenvolvedores estão na extremidade esquerda deste espectro e o pessoal de operações está na extremidade receptora. Há um atraso em cada entrega que leva a equipes frustradas e clientes insatisfeitos. O produto, por fim, é ativado por meio de um processo tedioso e propenso a erros que atrasa a geração de receita.

Etapas de lançamento manual: Dev, QA, ferramentas, infraestrutura, plataforma, versão, InfoSec
Figura 1: Lançamento manual de produtos aos clientes

Agora, consulte o pipeline da entrega contínua abaixo. Ele ilustra como os desenvolvedores criam o código em seus notebooks e confirmam as alterações em um repositório de código-fonte, como o Bitbucket. "Código" significa o sistema em teste, os testes e a infraestrutura que vão ser usados para implantar e manter o sistema. Os Bitbucket Pipelines podem enviar o produto do teste para o staging de produção e ajudar os clientes a colocar as mãos nessas novas funções.

Etapas do pipeline de entrega contínua: desenvolvedor, laptop, Bitbucket, Bitbucket Pipelines, clientes
Figura 2: Pipeline de entrega contínua fazendo lançamentos automatizados

Como funciona a entrega contínua?

Uma pipeline de entrega contínua pode ter um controle manual logo antes da produção. Um controle manual exige intervenção humana, e pode haver cenários em sua organização que exijam controle manuais em pipelines. Alguns controle manuais podem ser questionáveis, enquanto outros podem ser legítimos. Um cenário legítimo permite que a equipe de negócios tome uma decisão de lançamento de última hora. A equipe de engenharia mantém uma versão do produto pronta para entrega após cada sprint, e a equipe de negócios faz a ligação final para lançar o produto para todos os clientes, para uma parte da população ou talvez para pessoas que moram em uma determinada região.

A arquitetura do produto fluindo pelo pipeline é um fator-chave na determinação da anatomia do pipeline de entrega contínua. Uma arquitetura de produto com vínculos muito fortes gera um padrão gráfico de pipeline complicado, no qual vários pipelines podem se entrecruzar antes de chegarem à produção.

A arquitetura do produto também influencia as diferentes fases do pipeline e quais artefatos são produzidos em cada fase. O pipeline primeiro constrói componentes: as menores unidades distribuíveis e testáveis do produto. Por exemplo, uma biblioteca criada pelo pipeline pode ser chamada de componente. Essa é a fase do componente.

Componentes com vínculos fracos compõem subsistemas: as menores unidades implantáveis e executáveis. Por exemplo, um servidor é um subsistema. Um microsserviço em execução em um contêiner também é um exemplo de subsistema. Essa é a fase do subsistema. Ao contrário dos componentes, os subsistemas podem ser montados e testados.

Portanto, o pipeline pode ser ensinado a montar um sistema a partir de subsistemas com vínculos fracos em situações em que todo o sistema precisa ser lançado como um todo. Essa é a fase do sistema.

A gente não recomenda esta composição onde subsistemas são combinados em um sistema. Veja a ilustração disso na Figura 3.

Diagrama do subsistema
Figura 3: subsistemas tendo que ser montados em um sistema

Essa abordagem do tipo tudo ou nada faz com que o subsistema mais rápido siga a velocidade do mais lento. O dito "A força de toda a cadeia está no seu elo mais fraco" é um clichê que a gente usa para alertar as equipes que são vítimas desse padrão de arquitetura.

Uma vez validado, o sistema montado é então promovido à produção sem nenhuma modificação adicional, na fase final, chamada de fase de produção.

Observe que essas fases são mais lógicas do que físicas e foram criadas apenas para dividir um problema grande em vários menores. Você pode ter menos ou mais fases, dependendo da arquitetura e dos requisitos.

Velocidade sem qualidade é inútil para os clientes. O teste contínuo é uma técnica em que os testes automatizados são integrados ao pipeline de entrega de software e validam cada alteração do fluxo. Os testes são executados em cada fase do pipeline para validar os artefatos produzidos nessa fase. Os testes unitários e a análise estática de código validam os componentes na fase de componentes do pipeline. Os testes funcionais, de desempenho e de segurança validam os subsistemas na fase do subsistema. Os testes de integração, desempenho e segurança validam os sistemas na fase do sistema. Por fim, os testes de sanidade validam o produto na fase de produção.

Testes automatizados são integrados com o pipeline

Uma arquitetura monolítica de produtos, que a gente chama de Grande Bola de Lama, pode resultar em "Grandes Bolas de Testes". A gente recomenda investir em microsserviços para que os artefatos implementáveis com independência possam fluir pelos pipelines sem precisar de um ambiente muito integrado para certificação. Além disso, os artefatos implementáveis com independência permitem que equipes mais rápidas não sejam sobrecarregadas pelas equipes mais lentas. 

Testes automatizados são integrados com o pipeline

Uma arquitetura monolítica de produtos, que a gente chama de Grande Bola de Lama, pode resultar em "Grandes Bolas de Testes". A gente recomenda investir em microsserviços para que os artefatos implementáveis com independência possam fluir pelos pipelines sem precisar de um ambiente muito integrado para certificação. Além disso, os artefatos implementáveis com independência permitem que equipes mais rápidas não sejam sobrecarregadas pelas equipes mais lentas. 

Valor de entrega contínua

O pipeline de entrega de software é um produto em seu próprio direito e deveria ser prioridade para os negócios, caso contrário, os produtos geradores de receita não deveriam ser enviados através dele. A entrega contínua agrega valor de três maneiras: melhora a velocidade, a produtividade e a sustentabilidade das equipes de desenvolvimento de software.

Velocidade

Um pico na produtividade ocorre quando tarefas tediosas, como enviar um pedido de alteração para cada aspecto que vai para produção, podem ser executadas por pipelines em vez de por pessoas. Essa ação permite que as equipes de Scrum foquem em produtos que despertam a atenção do mundo, em vez de drenar sua energia em logística Dessa forma, é possível tornar os membros da equipe mais felizes, mais engajados em seu trabalho e fazer com que queiram ficar mais tempo na equipe.

Produtividade

Um pico na produtividade ocorre quando tarefas tediosas, como enviar um pedido de mudança para cada mudança que vai para produção, podem ser executadas por pipelines em vez de por pessoas. Isso permite que as equipes de Scrum foquem em produtos que despertam a atenção do mundo, em vez de drenar sua energia em logística. isso pode tornar os membros da equipe mais felizes, mais engajados em seu trabalho e fazer com que queiram ficar mais tempo na equipe.

Sustentabilidade

Sustentabilidade é fundamental para todas as empresas, não apenas as de tecnologia. "O software está consumindo o mundo" não é mais verdade — o software já consumiu o mundo! Cada empresa no final do dia, seja em cuidados de saúde, finanças, varejo ou algum outro domínio, usa a tecnologia para se destacar e vencer a concorrência. A automação ajuda a reduzir/eliminar tarefas manuais que são repetitivas e propensas a erros, posicionando, assim, a empresa para inovar melhor e mais rápido para atender às necessidades dos clientes.

Velocidade

Um pico na produtividade ocorre quando tarefas tediosas, como enviar um pedido de alteração para cada aspecto que vai para produção, podem ser executadas por pipelines em vez de por pessoas. Essa ação permite que as equipes de Scrum foquem em produtos que despertam a atenção do mundo, em vez de drenar sua energia em logística Dessa forma, é possível tornar os membros da equipe mais felizes, mais engajados em seu trabalho e fazer com que queiram ficar mais tempo na equipe.

Produtividade

Um pico na produtividade ocorre quando tarefas tediosas, como enviar um pedido de mudança para cada mudança que vai para produção, podem ser executadas por pipelines em vez de por pessoas. Isso permite que as equipes de Scrum foquem em produtos que despertam a atenção do mundo, em vez de drenar sua energia em logística. isso pode tornar os membros da equipe mais felizes, mais engajados em seu trabalho e fazer com que queiram ficar mais tempo na equipe.

Sustentabilidade

Sustentabilidade é fundamental para todas as empresas, não apenas as de tecnologia. "O software está consumindo o mundo" não é mais verdade — o software já consumiu o mundo! Cada empresa no final do dia, seja em cuidados de saúde, finanças, varejo ou algum outro domínio, usa a tecnologia para se destacar e vencer a concorrência. A automação ajuda a reduzir/eliminar tarefas manuais que são repetitivas e propensas a erros, posicionando, assim, a empresa para inovar melhor e mais rápido para atender às necessidades dos clientes.

Quem deve fazer a entrega contínua e quando?

Quando é um bom momento para adotar a entrega contínua? Foi ontem.
As equipes precisam de um único backlog priorizado no qual:

  1. 1

    a entrega contínua tenha sido adotada, em vez de relegada ao plano de fundo

  2. 2

    Os critérios de aceitação das histórias do usuário mencionem com destaque as abordagens automatizadas de entrega de software em vez de manuais e

  3. 3

    A definição de concluído (DoD) do sprint impeça que as equipes terminem sprints em que o lançamento manual dos produtos tenha sido feito

A entrega contínua é a coisa certa a fazer e, por vezes, exige que os defensores iniciem a transformação. Quando projetados da maneira certa, os pipelines de entrega contínua se pagam por si mesmos.

Então, quem está envolvido?

Algumas organizações contrataram pessoas inexperientes para projetar e implementar pipelines de entrega contínua e aprenderam da maneira mais difícil que havia profundas complexidades envolvidas. A nomeação de membros menos experientes envia um sinal errado às equipes e sugere que a entrega contínua tem baixa prioridade. A gente recomenda que um arquiteto sênior que tenha um profundo apreço por tecnologia e negócios seja colocado no comando.

Além da entrega contínua

Onde quer que a gente esteja em nossa caminhada rumo ao tudo contínuo (integraçãoteste|entregaimplementação, dados de análise etc.), ela não é nem uma checklist nem um destino e a melhoria contínua está no centro.

Cedo ou tarde, todos na empresa recebem um chamado quando os pipelines de entrega contínua estão sendo construídos. Executivos, engenharia, gerenciamento de produto, governança, risco, conformidade, InfoSec, operações, jurídico e o que mais tiver. Os pipelines corroem os silos e quebram paredes. A gente faz parte desta transformação, de um jeito ou de outro, e todos os contínuos são o novo normal!

Comece a usar a CI/CD

Para praticar a Implantação Contínua/Entrega Contínua, você pode usar ferramentas que automatizam o desenvolvimento, a implantação e os testes. Ferramentas específicas oferecem integração, outras apresentam desenvolvimento e implantação, enquanto outras ofertam testes.   
 
A Atlassian oferece uma Open DevOps Solution que oferece processos completos de DevOps, incluindo Implantação Contínua/Entrega Contínua. As equipes podem usar várias ferramentas de Implantação Contínua/Entrega Contínua, incluindo o Bitbucket Pipelines, um serviço integrado de Implantação Contínua/Entrega Contínua incorporado ao Bitbucket. Ele permite que você crie, teste e até mesmo implante com automação seu código com base em um arquivo de configuração em seu repositório. O Open DevOps também se integra a outras ferramentas de Implantação Contínua/Entrega Contínua, incluindo o Harness, GitLab, JFrog, Codefresh e CircleCI. 

Conheça mais as integrações do Open DevOps. Não deixe de consultar os tutoriais do DevOps CI/CD.

Recomendado para você

Princípios de entrega contínua

Blog Entrega contínua

Encontre respostas e conecte-se